package com.chen.common.util;



/**
 * @author chenzy
 *
 * @since 2020-04-08
 */
public class ClassUtil {
    private ClassUtil() {

    }

    /*是否是基础数据类型,包括字符串类型*/
    public static Boolean isBasicType(Class<?> clazz) {
        /*判断是否是基本数据类型*/
        if (clazz.isPrimitive()) {
            return true;
        }
        /*是否是字符串*/
        if (clazz == String.class) {
            return true;
        }
        /*判断是否是基本数据类型的包装类*/
        try {
            return ((Class<?>) clazz.getField("TYPE").get(null)).isPrimitive();
        } catch (IllegalAccessException | NoSuchFieldException e) {
            return false;
        }
    }

    public static <T> Boolean isType(Object value, Class<T> tClass) {
        if (value==null){
            return false;
        }
//        return ClassUtils.isAssignable(value.getClass(), tClass);
        return tClass.isAssignableFrom(value.getClass());
    }
}
